package com.wesley.singleton;


/**
 * <h1>懒汉模式 （线程不安全）</h1>
 * <p>
 *   懒汉 ， 顾名思义，只是在调用方法的时候进行判断，实例化操作。
 *   在方法中只是判断空 ，返回，没有进行多线程情况的考虑
 * </p>
 */
public class SingletonTest3 {

    // 测试方法
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            new Thread(() -> {
                Singleton3 instance = Singleton3.getInstance();
                System.out.println(Thread.currentThread().getName()+"---instance.hashCode():" + instance.hashCode());
            }).start();

        }
    }
}

class Singleton3 {
    private static Singleton3 SINGLETON;
    // 利用构造函数进行一个初始化
    private Singleton3() {}
    public static Singleton3 getInstance() {
        if (SINGLETON == null) {
            SINGLETON = new Singleton3();
            return SINGLETON;
        }
        return SINGLETON;
    }
}
